package com.unicom.shenzhen.sgip;

import com.unicom.shenzhen.sgip.exception.RecoverablePduException;
import com.unicom.shenzhen.sgip.exception.UnrecoverablePduException;
import com.unicom.shenzhen.sgip.pdu.SgipPduRequest;
import com.unicom.shenzhen.sgip.pdu.SgipPduResponse;

/**
 * Created by BR on 17/11/6.
 *
 * @author <a href="mailto:wangjiacheng@szunicom.com">Jiacheng Wang</a>
 */
public interface SgipSessionHandler {


	void channelUnexpectedlyClosed();

	SgipPduResponse pduRequestReceived(SgipPduRequest request);

	void pduRequestExpired(SgipPduRequest request);

	void expectedPduResponseReceived(SgipAsyncPduResponse response);

	void unexpectedPduResponseReceived(SgipPduResponse response);

	void unrecoverablePduException(UnrecoverablePduException exception);

	void recoverablePduException(RecoverablePduException exception);

	void unknownThrowable(Throwable throwable);
}
